package liecai_class.day01;

import java.util.Arrays;
import java.util.Random;

/**
 * 数组的排序
 * 2.选择排序
 * - 从剩余的数据中选择最小的, 放到第一位
 * - 从剩余数据中选择第二小的, 放到第二位
 * - 重复以上步骤, 直到完成排序
 */
public class ArraySort02 {
    public static void main(String[] args) {
        //生成一个随机数组
        Random rd = new Random();
        int[] arr = new int[10];
        for (int i=0;i<arr.length;i++){
            arr[i] = rd.nextInt(100);
        }
        System.out.println(Arrays.toString(arr));
        /*
            选择排序
         */
        //外部循环, 用于控制要确定哪一位数据
        for (int i=0;i<arr.length-1;i++){
            //定义一个变量用于记录最小值的索引
            int minIndex = i;
            //遍历从i到结尾的所有数据, 找最小的数, 将最小的数据与第i位互换
            for (int j=i+1;j<arr.length;j++){
                //若arr[j]小于假设的最小值, 将最小值索引变为j
                if (arr[j]<arr[minIndex]){
                    minIndex = j;
                }
                //将第i位数据与得到的最小值索引的数据交换
                int temp = arr[i];
                arr[i] = arr[minIndex];
                arr[minIndex] = temp;
            }
        }
        System.out.println(Arrays.toString(arr));
    }
}
